package com.class05.h_polymorphic;

public class Test01 {
    public static void main(String[] args) {
//        看new的是谁,先调用谁中的成员方法,子类没有,找父类
        Animal animal = new Dog();
        animal.eat();
        animal = new Cat();
        animal.eat();
        System.out.println("------------------");
        printHello(10);
        Dog dog = new Dog();
        eatAnimal(dog);

        Cat cat = new Cat();
        eatAnimal(cat);

    }


    public static void printHello(int a) {
        System.out.println(a);
    }

    //    形参定义父类类型，调用此方法父类类型可以传递任意它的子类对象
//    传递哪个子类对象，就指向哪个子类对象，就调用哪个子类对象重写的成员方法
    public static void eatAnimal(Animal animal) {
        animal.eat();
    }
}
